# -*- coding: cp1252 -*-
import tkMessageBox

#A tabela de referencia que usei para fazer essas fucoes esta no site (

#verifica campo exclusivo para letras
def verifica_campo_apenas_letras(stringNome):
    #Esta linha faz com que seja percorrida toda a string letra por letra
    for letra in stringNome:
        #Aqui extrai-se o codigo ASCII (valor decimal) do caracter em questao e armazena na variavel cod
        cod = ord(letra)        
        #Aqui verifica se o codigo corresponde as faixas de letras simples e acentuadas da tabela ASCII
        #Caso nao seja letra simples ou acentuada a funcao para e retorna FALSO
        if (cod < 65 and cod != 32)\
           or (cod > 90 and cod < 97)\
           or (cod > 122 and cod < 128)\
           or (cod > 154 and cod < 160)\
           or (cod > 165):
            tkMessageBox.showinfo('Mensagem do sistema', 'A expressao "' + stringNome + \
                                  '"possui caracteres invalidos, corrija e tente novamente.')
            return False
    #Retorn True se nao for encontrado caracteres que nao sejam letras.
    return True
    

#verifica campo de telefone
#Retorna Falso se houverem caracteres diferentes de numeros exceto parentesis e -
#Retorna falso se houverem menos de 8 caracteres
def verifica_telefone(stringTelefone):
    if len(stringTelefone) < 8:
        return False
    elif len(stringTelefone) > 8:
        for letra in stringTelefone:
            cod = ord(letra)
            if (cod < 48 and (cod != 45 and cod != 40 and cod != 41)) or cod > 57:
                tkMessageBox.showinfo('Mensagem do sistema', 'A expressao "' + stringTelefone + \
                                      '"aparenta nao ser um numero de telefone valido, corrija e tente novamente.')
                return False
    return True
    

#verifica_matricula
def verifica_campo_apenas_numeros(stringMatricula):
    for num in stringMatricula:
        codigo_ascii = ord(num)
        if codigo_ascii < 48 or codigo_ascii > 57:
            tkMessageBox.showinfo('Mensagem do sistema', 'A expressao "' + stringMatricula + \
                                  '"possui caracteres que nao sao numeros, corrija e tente novamente.')
            return False
    return True         
    

#verifica e-mail
def verifica_email(stringEmail):
    for letra in stringEmail:
        if letra == '@':
            return True
    tkMessageBox.showinfo('Mensagem do sistema', 'A expressao "' + stringEmail + \
                          '"aparenta nao ser um endereco de e-mail valido, corrija e tente novamente.')
    return False


